﻿namespace SharePointUtilitiesForDevelopers.Action
{
    /// <summary>
    /// Defintes the interface for an action.
    /// </summary>
    public interface IAction
    {
        /// <summary>
        /// Gets the title.
        /// </summary>
        /// <value>The title.</value>
        string Title { get; }

        /// <summary>
        /// Gets the description.
        /// </summary>
        /// <value>The description.</value>
        string Description { get; }

        /// <summary>
        /// Gets the target.
        /// </summary>
        /// <value>The target.</value>
        ActionTarget Target { get; }

        /// <summary>
        /// Executes the action.
        /// </summary>
        /// <param name="actionContext">The context.</param>
        void Execute(ActionContext actionContext);

    }
}
